package org.example.erat.repository;

import org.example.erat.entity.ClassEntity;
import org.example.erat.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 学生数据访问接口
 */
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {

    /**
     * 根据学号查找学生
     * @param studentId 学号
     * @return 学生对象
     */
    Optional<Student> findByStudentId(String studentId);

    /**
     * 根据班级查找学生列表
     * @param classEntity 班级对象
     * @return 学生列表
     */
    List<Student> findByClassEntity(ClassEntity classEntity);

    /**
     * 根据班级ID查找学生列表
     * @param classId 班级ID
     * @return 学生列表
     */
    List<Student> findByClassEntityId(Long classId);

    /**
     * 根据姓名和班级查找学生
     * @param name 姓名
     * @param classEntity 班级对象
     * @return 学生对象
     */
    Optional<Student> findByNameAndClassEntity(String name, ClassEntity classEntity);
}
